package redlib.backend.service;

import redlib.backend.dto.BioinformaticDocDTO;
import redlib.backend.dto.query.BioinformaticDocQueryDTO;
import redlib.backend.dto.query.KeywordQueryDTO;
import redlib.backend.model.Page;
import redlib.backend.vo.BioinformaticDocVO;
import redlib.backend.vo.LuceneResultBookVO;

/**
 * 文献模块服务接口
 *
 * @author Zane
 */
import java.util.List;
public interface BioinformaticDocService {
    Page<BioinformaticDocVO> listByPage(BioinformaticDocQueryDTO queryDTO);

    /**
     * 新建文献
     *
     * @param bioinformaticDocDTO 文献输入对象
     * @return 文献编码
     */
    Integer addBioinformaticDoc(BioinformaticDocDTO bioinformaticDocDTO);

    /**
     * 更新部门数据
     *
     * @param bioinformaticDocDTO 文献输入对象
     * @return 部门编码
     */
    Integer updateBioinformaticDoc(BioinformaticDocDTO bioinformaticDocDTO);

    /**
     * 根据编码列表，批量删除文献
     *
     * @param ids 编码列表
     */
    void deleteByCodes(List<Integer> ids);

    Page<LuceneResultBookVO> search(KeywordQueryDTO queryDTO);
}
